package main

import (
	"os"
	"os/signal"

	"github.com/fsnotify/fsnotify"
)

func newFsWatcher( files ...string ) (*fsnotify.Watcher, error) {
	watcher, err := fsnotify.NewWatcher()
	if err != nil {
		return nil, err
	}

	for _, f := range files {
		err = watcher.Add( f )
		if err != nil {
			watcher.Close()
			return nil, err
		}
	}

	return watcher, nil
}

func newOsWatcher( sigs ...os.Signal ) chan os.Signal {
	sigChan := make( chan os.Signal, 1 )
	signal.Notify( sigChan, sigs... )

	return sigChan
}
